/**将 class Example 转成构造函数的方式**/
// class Example2 {
//   constructor() {
//     this.name = "example";
//   }

//   fn() {
//     console.log(this.name);
//   }
// }

"use strict"; // 严格模式

function Example() {
  // 如果没有使用 new 关键字调用构造函数，会抛出错误
  if (!new.target) {
    throw new TypeError("Example is not a constructor");
  }
  this.name = "example";
}

Object.defineProperty(Example.prototype, "fn", {
  value: function () {
    console.log(this.name);
  },
  enumerable: false, // 不枚举
});

const example = new Example();
for (const key in example) {
  console.log(key);
}
